--[[
    combat : 战斗对象
    combat_data : {
        join_time : 加入房间时间

    }
]]

local M = {}

---! 获取战斗对象
function M:get_combat()
    return self:query_temp("combat")
end

---! 设置战斗对象
function M:set_combat(combat_ob)
    return self:set_temp("combat", combat_ob)
end

---! 移除战斗对象
function M:remove_combat()
    self:delete_temp("combat")
end

---! 是否在战斗中
function M:is_in_combat()
    local combat = self:get_combat()
    return combat and true or false
end

---! 清理战斗相关数据
function M:clear_combat()
    local combat = self:query_temp("combat")
    if not combat then
        return
    end

    self:delete_temp("combat")
    self:delete_temp("combat_data")
    if self:is_robot() then
        ROBOT_D:recover_robot(self)
    end

    spdlog.debug("combat", "user_id : %s clear combat : %s", self:get_id(), combat:get_id())
end

---! 退出战斗
function M:quit_combat()
    local combat = self:query_temp("combat")
    if not combat then
        return
    end

    self:clear_combat()
    combat:del_user(self:get_id())
    TEAM_D:quit_team(self)
end

F_CHAR_COMBAT = M
